/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package edu.upc.poo.batalla;

/**
 *
 * @author alumno
 */
public class Juego {

    Tablero tablero1;
    Tablero tablero2;
    public static final int JUGADOR_1 = -1;
    public static final int JUGADOR_2 = -2;
    public static final int HORIZONTAL = 1;
    public static final int VERTICAL = 2;
    public static final int BARCO_1 = 1;
    public static final int BARCO_2 = 2;
    public static final int BARCO_3 = 3;
    public static final int BARCO_4 = 4;

    public void nuevoJuego() {
        tablero1 = new Tablero();
        tablero2 = new Tablero();
    }

    public Tablero getTablero1() {
        return tablero1;
    }

    public void setTablero1(Tablero tablero1) {
        this.tablero1 = tablero1;
    }

    public Tablero getTablero2() {
        return tablero2;
    }

    public void setTablero2(Tablero tablero2) {
        this.tablero2 = tablero2;
    }

    public boolean isDisponibleBarco(int jugador, int barco, int fila, int columna, int posicion) {
        switch (jugador) {
            case JUGADOR_1: {
                return tablero1.isDisponibleBarco(barco, fila, columna, posicion);
            }
            case JUGADOR_2: {
                return tablero2.isDisponibleBarco(barco, fila, columna, posicion);
            }
            default: {
                return false;
            }
        }
    }

    public void colocarBarco(int jugador, int barco, int fila, int columna, int posicion) {
        switch (jugador) {
            case JUGADOR_1: {
                tablero1.colocarBarco(barco, fila, columna, posicion);
            }
            break;
            case JUGADOR_2: {
                tablero2.colocarBarco(barco, fila, columna, posicion);
            }
            break;
        }
    }

    public void realizarJugada(int jugador, int fila, int columna) {
        switch (jugador) {
            case JUGADOR_1: {
                tablero2.realizarMovimiento(fila, columna, JUGADOR_1);
            }
            break;
            case JUGADOR_2: {
                tablero1.realizarMovimiento(fila, columna, JUGADOR_2);
            }
            break;
        }
    }

    public boolean isGanador(int jugador) {
        switch (jugador) {
            case JUGADOR_1: {
                return tablero2.isTableroDestruido(JUGADOR_1);
            }
            case JUGADOR_2: {
                return tablero1.isTableroDestruido(JUGADOR_2);
            }
            default: {
                return false;
            }
        }
    }

    public void iniciarJugadas() {
        tablero1.clonarTablero();
        tablero2.clonarTablero();
    }
}
